package com.seari.mapper;

import java.util.List;
import java.util.Map;

import com.seari.bean.AlarmCountLineMalfunction;
import com.seari.bean.AlarmCountMalfunction;
import com.seari.bean.AlarmMessageBean;
import com.seari.bean.AlarmQuery;
import com.seari.bean.AllLineRealAlarm;
import com.seari.bean.AllLineStationFault;
import com.seari.bean.HealthImportDevice;
import com.seari.bean.RedisDeploy;
import com.seari.pojo.EventBasePojo;
import com.seari.pojo.QueryBase;
import com.seari.utils.IData;

public interface AlarmMapper {
	
	
	// 查询全网实时报警数据
	public List<AlarmMessageBean> queryAlarmData();
	// 故障总览
	public List<AlarmMessageBean> queryAlarmDataCtOt();
	
	// 查询各专业故障统计
	public List<AlarmCountMalfunction> queryAlarmMalfunction();

	//首页车站故障统计Top10
    public List<AlarmCountMalfunction> queryStationAlarmTop();

    //综合监视车站故障统计Top10
	public List<AlarmCountMalfunction> queryAlarmTop();

	//综合监视实时报警数据查询
	public List<AlarmMessageBean> queryRealTimeAlarmData();

	//设备管理故障比例统计
	public  List<AlarmCountMalfunction> queryMalfunctionCnt();

	//综合监视故障分级
	public List<IData> queryMalfunctionRank();

	//数据分析全线实时报警
    List<AllLineRealAlarm> queryRealTimeAlarm(AlarmQuery alarmQuery);

	//查询设备总数
	public List<Map<String, Object>> queryDeviceSum();

	//查询故障设备数
	public List<Map<String, Object>> queryFaultDevice();

	//首页全网线路故障统计
	public AlarmCountLineMalfunction queryAlarmLineMalfunction();

	//查询设备分类统计
	public List<AlarmCountMalfunction> queryAlarmSystemCnt();

    
    //查询重要设备健康度
	public List<HealthImportDevice> queryHealthImportDevice(QueryBase qb);
	
	//查询重要设备风险指数排行榜
	public List<Map<String, Object>> queryDevicePro();
	
	//查询重要设备故障统计Top10 
	public List<Map<String, Object>> queryDeviceTopTen();

	//数据分析全线车站故障统计
    public List<AllLineStationFault> queryAllLineCntFault();

	//综合监视车站故障总览
    public List<Map<String,Object>> queryAllLineFault();

	//综合监视接口状态
	public List<Map<String,String>> queryDevicePort();
	
	// 获取重要设备健康指数
	public int getHealthIndex();

	//查询总的故障总数
	public Integer getAllEventCount();

	//查询最大的故障数
	public List<EventBasePojo> getMaxEvenCount();

	public int getDeviceHealthCount();
	
	public List<RedisDeploy> getRedisDeploys(String redisName);
	public List<AllLineRealAlarm> getAllLineRealAlarm(AlarmQuery alarmQuery);
	public int getAllLineRealAlarmCount(AlarmQuery alarmQuery);

}
